package com.ruoyi.pos.service.print;

import com.ruoyi.pos.domain.dto.print.request.PrintSchemeQueryRequest;
import com.ruoyi.pos.domain.dto.print.response.PrintSchemeResponse;
import com.ruoyi.pos.domain.dto.common.response.BasePageResponse;

/**
 * POS打印方案Service接口
 * 
 * @author ruoyi
 * @date 2025-01-30
 */
public interface IPosPrintSchemeService {

    /**
     * 查询单个打印方案信息
     * 支持根据ID、编码查询
     * 
     * @param request 查询请求
     * @return 打印方案信息
     */
    PrintSchemeResponse getPrintScheme(PrintSchemeQueryRequest request);

    /**
     * 分页查询打印方案列表
     * 
     * @param request 查询请求
     * @return 分页响应
     */
    BasePageResponse<PrintSchemeResponse> queryPrintSchemes(PrintSchemeQueryRequest request);

    /**
     * 验证打印方案模板语法
     * 
     * @param schemeId 方案ID
     * @return 验证结果
     */
    boolean validatePrintSchemeTemplate(Long schemeId);

    /**
     * 获取打印方案预览内容
     * 
     * @param schemeId 方案ID
     * @param sampleData 示例数据
     * @return 预览内容
     */
    String getPrintSchemePreview(Long schemeId, String sampleData);
}
